﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;

//namespace engine
//{
//    class App
//    {
//        #region 属性和构造函数
//        private IIOMapper _ioMapper;
//        private List<IMiddleBuiltinCollection> _middleBuiltinCollections = new List<IMiddleBuiltinCollection>();

//        public App(IIOMapper iOMapper, IMiddleBuiltinCollection middleBuiltinCollection)
//        {
//            _ioMapper = iOMapper;
//            RegisterMiddleBuiltinCollection(middleBuiltinCollection);
//        }
//        #endregion

//        #region 注册内置函数
//        public void RegisterMiddleBuiltinCollection(IMiddleBuiltinCollection middleBuiltinCollection)
//        {
//            _middleBuiltinCollections.Add(middleBuiltinCollection);
//        }
//        #endregion

//        #region 获取数据和模板渲染的函数
//        public MiddleData GetWordData(string fileName, string templateName, string configName)
//        {
//            return _ioMapper.FromWord(fileName, templateName, new TemplateConfig(configName));
//        }
        
//        public void RenderWord(string templateName, string configName, MiddleData data, string outputName)
//        {
//            TemplateConfig templateConfig = new TemplateConfig(configName);

//            MiddleData middleData = RebuildMiddleData(data, templateConfig);

//            _ioMapper.ToWord(templateName, templateConfig, middleData, outputName);
//        }
//        #endregion

//        #region 其他
//        public MiddleData RebuildMiddleData(MiddleData middleData, TemplateConfig templateConfig)
//        {
//            return null;
//        }
//        #endregion
//    }

//    public class MiddleData
//    {
//        private Dictionary<string, MiddleDataItem> _datas = new Dictionary<string, MiddleDataItem>();

//        public MiddleDataItem Get(string key)
//        {
//            return null;
//        }

//        public object GetValue(string key)
//        {
//            return null;
//        }

//        public void Set(string key, MiddleDataItem middleDataItem)
//        {

//        }
//    }

//    public class MiddleDataItem
//    {

//    }

//    public class TemplateConfig
//    {
//        public TemplateConfig(string configName)
//        {

//        }
//    }

//    public class MiddleBuiltinCollection : IMiddleBuiltinCollection
//    {
//        public bool HasFunc(string funcName)
//        {
//            throw new NotImplementedException();
//        }

//        public object Run(string funcName, object[] paras)
//        {
//            throw new NotImplementedException();
//        }
//    }

//    public interface IMiddleBuiltinCollection
//    {
//        bool HasFunc(string funcName);
//        object Run(string funcName, object[] paras);
//    }
//}
